# ==============================================================
# 页面静态化
"""
首页、详情页面

都是先查询数据库的数据
然后再进行HTML的渲染

最好的体验是用户直接就可以访问到经常数据库查询，已经渲染的HTML页面， 静态化

"""


# 这个函数能帮我们查询数据库，渲染HTML，让后将渲染的HTML写入到指定的位置
import time

from apps.contents.models import ContentCategory
from apps.goods.models import SKU
from utils.goods import get_categories, get_breadcrumb, get_goods_specs


def generic_meiduo_index():
    print('---------------------%s--------------------' % time.ctime())
    # 1.获取分类数据
    categories = get_categories()

    # 2.获取广告数据
    contents = {}
    content_categories = ContentCategory.objects.all()
    for cat in content_categories:
        contents[cat.key] = cat.content_set.filter(status=True).order_by('sequence')

    # 首页后面会讲页面静态化
    # 把数据传递给模板
    context = {
        'categories': categories,
        'contents': contents,
    }

    # 1.加载渲染的模板
    from django.template import loader
    index_template = loader.get_template('index.html')
    # 2. 把数据给模板
    index_html_data = index_template.render(context)

    # 3. 把渲染好的HTML写入指定文件
    from meiduo_mall import settings
    import os

    file_path = os.path.join(os.path.dirname(settings.BASE_DIR), 'front_end_pc/index.html')
    with open(file_path, 'w', encoding='utf-8') as f:
        f.write(index_html_data)



